package main

import (
	"bufio"
	"fmt"
	"github.com/fumiama/go-docx"
	"math/rand"
	"os"
	"strings"
	"time"
)

func main() {
	// 打开文件
	file, err := os.Open("18check/miyu.docx")
	if err != nil {
		panic(err)
	}
	defer file.Close()
	// 获取文件大小
	fileInfo, err := file.Stat()
	if err != nil {
		panic(err)
	}
	size := fileInfo.Size()
	// 解析文档
	doc, err := docx.Parse(file, size)
	if err != nil {
		panic(err)
	}
	var infos map[int]map[string]string = make(map[int]map[string]string)
	// 输出文档内容
	var num int = 0
	//fmt.Println("文档内容:")
	for _, item := range doc.Document.Body.Items {
		switch item.(type) {
		case *docx.Paragraph:
			//fmt.Println(item)
			s := fmt.Sprintf("%v", item)
			if s == "" {
				continue
			}

			var info []string
			info = strings.Split(s, "谜底：")
			//fmt.Println(info, "=========================")
			//fmt.Println(len(info))

			var infosMin map[string]string = make(map[string]string)
			infosMin[info[0]] = info[1]
			infos[num] = infosMin
			num++
		}
	}
	// 重要：设置随机数种子，否则每次运行结果相同
	rand.Seed(time.Now().UnixNano())
	reader := bufio.NewReader(os.Stdin)
	fmt.Println("欢迎来到猜谜底小游戏：")
	fmt.Println("游戏进行中，如果想结束游戏，输入退出即可")
	for {
		fmt.Print(" ")
		// 生成0-99的随机整数
		num1 := rand.Intn(len(infos))
		//fmt.Println(num1)
		fmt.Println()
		fmt.Println("新生成的谜底：")
		for k, _ := range infos[num1] {
			fmt.Println("谜底是：", k)
		}
		input, _ := reader.ReadString('\n')
		input = strings.TrimSpace(input)
		if input == "退出" {
			fmt.Println("程序已退出。")
			return
		}
		for k, _ := range infos[num1] {
			if input == infos[num1][k] {
				fmt.Println("答案正确！")
			} else {
				fmt.Println("答案错误")
				fmt.Println("正确答案是", infos[num1][k])
			}
		}
	}
}
